﻿namespace Microsoft.Xml.Serialization.GeneratedAssembly
{
    using Chain.Common.WebReference;
    using System;
    using System.Collections;
    using System.Xml.Serialization;

    public class XmlSerializerContract : XmlSerializerImplementation
    {
        private Hashtable readMethods;
        private Hashtable typedSerializers;
        private Hashtable writeMethods;

        public override bool CanSerialize(Type type)
        {
            return (type == typeof(SmsService));
        }

        public override XmlSerializer GetSerializer(Type type)
        {
            return null;
        }

        public override XmlSerializationReader Reader
        {
            get
            {
                return new XmlSerializationReaderSmsService();
            }
        }

        public override Hashtable ReadMethods
        {
            get
            {
                if (this.readMethods == null)
                {
                    Hashtable hashtable = new Hashtable();
                    hashtable["Chain.Common.WebReference.SmsService:System.String SendMessage(Int32, System.String, System.String, System.String, System.String, System.String):Response"] = "Read1_SendMessageResponse";
                    hashtable["Chain.Common.WebReference.SmsService:System.String SendMessage(Int32, System.String, System.String, System.String, System.String, System.String):OutHeaders"] = "Read2_SendMessageResponseOutHeaders";
                    hashtable["Chain.Common.WebReference.SmsService:System.String GetBalance(Int32, System.String, System.String):Response"] = "Read3_GetBalanceResponse";
                    hashtable["Chain.Common.WebReference.SmsService:System.String GetBalance(Int32, System.String, System.String):OutHeaders"] = "Read4_GetBalanceResponseOutHeaders";
                    hashtable["Chain.Common.WebReference.SmsService:System.String RegisterEx(System.String, System.String, System.String):Response"] = "Read5_RegisterExResponse";
                    hashtable["Chain.Common.WebReference.SmsService:System.String RegisterEx(System.String, System.String, System.String):OutHeaders"] = "Read6_RegisterExResponseOutHeaders";
                    hashtable["Chain.Common.WebReference.SmsService:System.String RegisterZs(System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String):Response"] = "Read7_RegisterZsResponse";
                    hashtable["Chain.Common.WebReference.SmsService:System.String RegisterZs(System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String):OutHeaders"] = "Read8_RegisterZsResponseOutHeaders";
                    if (this.readMethods == null)
                    {
                        this.readMethods = hashtable;
                    }
                }
                return this.readMethods;
            }
        }

        public override Hashtable TypedSerializers
        {
            get
            {
                if (this.typedSerializers == null)
                {
                    Hashtable hashtable = new Hashtable();
                    hashtable.Add("Chain.Common.WebReference.SmsService:System.String GetBalance(Int32, System.String, System.String)", new ArrayOfObjectSerializer4());
                    hashtable.Add("Chain.Common.WebReference.SmsService:System.String RegisterZs(System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String)", new ArrayOfObjectSerializer12());
                    hashtable.Add("Chain.Common.WebReference.SmsService:System.String SendMessage(Int32, System.String, System.String, System.String, System.String, System.String):Response", new ArrayOfObjectSerializer1());
                    hashtable.Add("Chain.Common.WebReference.SmsService:System.String RegisterZs(System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String):OutHeaders", new ArrayOfObjectSerializer15());
                    hashtable.Add("Chain.Common.WebReference.SmsService:System.String SendMessage(Int32, System.String, System.String, System.String, System.String, System.String)", new ArrayOfObjectSerializer());
                    hashtable.Add("Chain.Common.WebReference.SmsService:System.String RegisterZs(System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String):InHeaders", new ArrayOfObjectSerializer14());
                    hashtable.Add("Chain.Common.WebReference.SmsService:System.String GetBalance(Int32, System.String, System.String):OutHeaders", new ArrayOfObjectSerializer7());
                    hashtable.Add("Chain.Common.WebReference.SmsService:System.String SendMessage(Int32, System.String, System.String, System.String, System.String, System.String):OutHeaders", new ArrayOfObjectSerializer3());
                    hashtable.Add("Chain.Common.WebReference.SmsService:System.String RegisterEx(System.String, System.String, System.String):Response", new ArrayOfObjectSerializer9());
                    hashtable.Add("Chain.Common.WebReference.SmsService:System.String GetBalance(Int32, System.String, System.String):InHeaders", new ArrayOfObjectSerializer6());
                    hashtable.Add("Chain.Common.WebReference.SmsService:System.String RegisterEx(System.String, System.String, System.String):InHeaders", new ArrayOfObjectSerializer10());
                    hashtable.Add("Chain.Common.WebReference.SmsService:System.String RegisterEx(System.String, System.String, System.String)", new ArrayOfObjectSerializer8());
                    hashtable.Add("Chain.Common.WebReference.SmsService:System.String RegisterZs(System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String):Response", new ArrayOfObjectSerializer13());
                    hashtable.Add("Chain.Common.WebReference.SmsService:System.String RegisterEx(System.String, System.String, System.String):OutHeaders", new ArrayOfObjectSerializer11());
                    hashtable.Add("Chain.Common.WebReference.SmsService:System.String SendMessage(Int32, System.String, System.String, System.String, System.String, System.String):InHeaders", new ArrayOfObjectSerializer2());
                    hashtable.Add("Chain.Common.WebReference.SmsService:System.String GetBalance(Int32, System.String, System.String):Response", new ArrayOfObjectSerializer5());
                    if (this.typedSerializers == null)
                    {
                        this.typedSerializers = hashtable;
                    }
                }
                return this.typedSerializers;
            }
        }

        public override Hashtable WriteMethods
        {
            get
            {
                if (this.writeMethods == null)
                {
                    Hashtable hashtable = new Hashtable();
                    hashtable["Chain.Common.WebReference.SmsService:System.String SendMessage(Int32, System.String, System.String, System.String, System.String, System.String)"] = "Write1_SendMessage";
                    hashtable["Chain.Common.WebReference.SmsService:System.String SendMessage(Int32, System.String, System.String, System.String, System.String, System.String):InHeaders"] = "Write2_SendMessageInHeaders";
                    hashtable["Chain.Common.WebReference.SmsService:System.String GetBalance(Int32, System.String, System.String)"] = "Write3_GetBalance";
                    hashtable["Chain.Common.WebReference.SmsService:System.String GetBalance(Int32, System.String, System.String):InHeaders"] = "Write4_GetBalanceInHeaders";
                    hashtable["Chain.Common.WebReference.SmsService:System.String RegisterEx(System.String, System.String, System.String)"] = "Write5_RegisterEx";
                    hashtable["Chain.Common.WebReference.SmsService:System.String RegisterEx(System.String, System.String, System.String):InHeaders"] = "Write6_RegisterExInHeaders";
                    hashtable["Chain.Common.WebReference.SmsService:System.String RegisterZs(System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String)"] = "Write7_RegisterZs";
                    hashtable["Chain.Common.WebReference.SmsService:System.String RegisterZs(System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String, System.String):InHeaders"] = "Write8_RegisterZsInHeaders";
                    if (this.writeMethods == null)
                    {
                        this.writeMethods = hashtable;
                    }
                }
                return this.writeMethods;
            }
        }

        public override XmlSerializationWriter Writer
        {
            get
            {
                return new XmlSerializationWriterSmsService();
            }
        }
    }
}

